home *** CD-ROM | disk | FTP | other *** search
/ Interactive Media Design Review 1999 / Interactive Media Design Review 1999.iso / pc / Demos / Herois / Codigo.Cst / 00182_Melhores Momentos- Anima Sprite.ls < prev    next >
Encoding:
Text File  |  1999-03-19  |  2.4 KB  |  77 lines

  1. property memberPrim, memberUlt -- Cast members que serao animados
  2. property memPrim, memQuantos -- Membros: em numero
  3. property espera -- Tempo de espera entre cada mudanca (em ticks) 
  4. property aleatorio -- True para mudanca aleatoria
  5. property ultimaTroca -- Hora em que foi feita ultima troca
  6. property fotoAtual
  7. property sequencial 
  8.  
  9. on getBehaviorDescription
  10.   return "Anima sprites"
  11. end
  12.  
  13. on getPropertyDescriptionList
  14.   set p_list = [ ┬¼
  15.     #memberPrim: [ #comment:   "Primeiro membro da animacao", ┬¼
  16.                     #format:   #string, ┬¼
  17.                    #default:   "" ], ┬¼
  18.     #memberUlt: [ #comment:   "Ultimo membro da animacao", ┬¼
  19.                     #format:   #string, ┬¼
  20.                    #default:   "" ], ┬¼
  21.     #espera: [ #comment: "Espera entre cada troca em 1/60s (velocidade)",┬¼
  22.                       #format: #integer,┬¼
  23.                      #default: 60 ],┬¼
  24.     #aleatorio: [ #comment: "Animacao randomica",┬¼
  25.                       #format: #boolean,┬¼
  26.                      #default: false ],┬¼
  27.     #sequencial: [ #comment: "Animacao sem saltar frames",┬¼
  28.                       #format: #boolean,┬¼
  29.                      #default: false ]┬¼
  30.   ]
  31.   return p_list
  32. end
  33.  
  34. on beginSprite me
  35.   set memPrim to the number of member memberPrim
  36.   set memQuantos to (the number of member memberUlt) - memPrim + 1
  37.   put 0 into fotoAtual
  38. end
  39.  
  40. on idleSprite me
  41.   global gMustUpdate
  42.   -- Testa se ja e' hora de trocar figura
  43.   set tmpTimer = the timer
  44.   if (tmpTimer - ultimaTroca) > espera then
  45.     
  46.     -- Descobre qual a proxima figura a trocar
  47.     if (aleatorio) then
  48.       put random(memQuantos - 1) - 1 into tmp
  49.       if tmp >= fotoAtual then put 1 + tmp into tmp
  50.       put tmp into fotoAtual
  51.       if random(2) = 1 then 
  52.         set the visible of sprite 5 to true
  53.       else
  54.         set the visible of sprite 5 to false
  55.       end if
  56.       put the timer into ultimaTroca
  57.     else if (sequencial) then
  58.       put fotoAtual + 1 into fotoAtual
  59.       if fotoAtual >= memQuantos then
  60.         put 0 into fotoAtual
  61.       end if
  62.       put the timer into ultimaTroca
  63.     else 
  64.       repeat while (tmpTimer - ultimaTroca) > espera
  65.         put fotoAtual + 1 into fotoAtual
  66.         if fotoAtual >= memQuantos then
  67.           put 0 into fotoAtual
  68.         end if
  69.         put ultimaTroca + espera into ultimaTroca
  70.       end repeat
  71.     end if
  72.     
  73.     -- Muda figura e updateStage
  74.     set the member of sprite (the spriteNum of me) to memPrim + fotoAtual
  75.     set gMustUpdate to true
  76.   end if
  77. end